package com.apobates.jforum2.troll.utils.core.api;

import java.io.Serializable;

/**
 * 实体对象与值对象的转换器.可逆
 * @param <T> 实体类型
 * @param <R> 值类型
 */
public interface EntityVoTypeAdapter<T extends Serializable,R extends Serializable> {
    /**
     * T->R:将实体转为值对象
     * @param entity
     * @return
     */
    R marshal(T entity);

    /**
     * R->T:将值对象转换为实体
     * @param target
     * @return
     */
    T unmarshal(R target);
}